package com.groovy.domain

/**
 * 计算一个数字的阶乘
 * 此程序使用 upto与 downto 函数实现
 */
class Test2{

    /**
     * 使用static关键字进行修饰静态方法
     * @param number
     * @return
     */
    static int jieCheng1(int number) {
        int result = 1
        //{}后面的程序表示是闭包
        1.upto(number, { num -> result *= num })
        return result
    }

    /**
     * 使用static关键字进行修饰静态方法
     * @param number
     * @return
     */
    static int jieCheng2(int number) {
        int result = 1
        //{}后面的程序表示是闭包
        number.downto(1) { num -> result *= num }
        return result
    }

    static void main(String[] args) {
        println(jieCheng1(5))
        println(jieCheng2(5))
    }

}
